package com.wuad.platformwuad.module.study.threadDemo;
/**
 * 线程
 * 线程允许我们并发执行多段代码,感官上就是这几段代码是
 * 同时运行的.但实际上他们是并发运行的.
 *
 * 创建线程有两种方式
 * 第一种方式:继承Thread并重写run方法.其中run方法的内容
 *           是这个线程需要并发运行的代码.
 * @author adminitartor
 *
 */
public class ThreadDemo1 {
	public static void main(String[] args) {
		Thread t1 = new MyThread1();
		Thread t2 = new MyThread2();
		/*
		 * 启动线程要调用start方法,而不是直接调用run方法.
		 * 当start方法执行完毕后,线程纳入线程调度,当该
		 * 线程获取CPU时间片开始执行时,会自动调用run方法.
		 */
		t1.start();
		t2.start();
	}
}

/**
 * 第一种创建线程的方式有两个不足:
 * 1:继承冲突,由于java是单继承的,这就导致若继承了线程就不
 *   能继承其他类,在实际开发中很不方便.
 * 2:将线程要执行的任务直接定义在线程的run方法中会导致线程
 *   与线程要执行的任务有一个必然的耦合关系,不利于线程的重
 *   用.
 */
class MyThread1 extends Thread{
	public void run(){
		for(int i=0;i<10;i++){
			System.out.println("你是谁啊?");
		}
	}
}

class MyThread2 extends Thread{
	public void run(){
		for(int i=0;i<10;i++){
			System.out.println("我是查水表的!");
		}
	}
}












